package com.jinyi.wwdeng.ui.login.contract

import com.jinyi.base.mvp.IBasePresenter
import com.jinyi.base.mvp.IBaseView
import org.json.JSONObject

/**
 * JinYiTest
 * @Author wwdeng
 * @CreateTime: 2024/4/15 15:12
 * @Annotation：注册/登录  契约接口
 */
interface LoginContract {

    /**
     * model 层接口类
     */
    interface Model {

        /***
         * 发送验证码
         * @param param
         */
        fun sendSmsCodeRequest(mobile: String)

        /**
         * 登录
         * @param params
         */
        fun loginRequest(mobile: String,code: String,directLoginFlag: String)
    }

    /**
     * view 层接口类
     */
    interface View : IBaseView {
        /**
         * 验证码发送成功
         * @param data
         */
        fun showSendSmsSuccess(data: JSONObject)

        /**
         * 登录成功
         */
        fun showLoginSuccess()

        /**
         * 登录失败
         */
        fun showLoginFailure(data: JSONObject)

        /**
         * 获取登录手机号
         */
        fun getMobile(): String
    }

    /**
     * presenter 层接口类
     */
    interface Presenter: IBasePresenter {
        /**
         * 发送验证码成功
         */
        fun onSendSmsSuccess(data: JSONObject)

        /**
         * 登录成功
         */
        fun onLoginSuccess(data: JSONObject)

        /**
         * 登录失败
         */
        fun onLoginFailure(data: JSONObject)

        /**
         *  接口调用失败
         */
        fun onFailureData(msg: String)
    }
}